package com.estagio.converter;

import java.util.Map;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import com.estagio.entity.Estado;

@FacesConverter(value = "estadoConverter", forClass = Estado.class)
public class EstadoConverter implements Converter {	 

	@Override
	public Object getAsObject(FacesContext arg0, UIComponent component, String value) {
		if (value != null) {
            return this.getAttributesFrom(component).get(value);
        }
        return null;
	}

	private Map<String, Object> getAttributesFrom(UIComponent component) {
		return component.getAttributes();
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent component, Object value) {
        if (value != null && ! "".equals(value)) {
            Estado estado = (Estado) value;
 
            if (estado.getIdEstado() != null) {
                this.addAttribute(component, estado);
 
                if (estado.getIdEstado() != null) {
                    return String.valueOf(estado.getIdEstado());
                }
                return (String) value;
            }
        }
        return "";
	}

	private void addAttribute(UIComponent component, Estado estado) {
		this.getAttributesFrom(component).put(estado.toString(), estado);
		
	}
	
}
